package com.youlai.boot.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.system.model.entity.TaskTable;
import com.youlai.boot.system.model.query.TaskTableQuery;
import com.youlai.boot.system.model.vo.TaskTableVO;
import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface TaskTableMapper extends BaseMapper<TaskTable> {
    /**
     * 获取首页分页数据
     *
     * @param page 分页对象
     * @param queryParams 查询参数
     * @return
     */

    // todo 归档查询条件有问题
    Page<TaskTableVO> getTasktablePage(Page<TaskTableVO> page, TaskTableQuery queryParams);
    /**
     * 根据归档字段查询
     */
    Page<TaskTableVO> selectTasksByArchiveStatus(Page<TaskTableVO> page, TaskTableQuery queryParamse);

    /**
     * 获取任务完成情况统计数据
     * @return
     */
    @Select("SELECT state, COUNT(*) as count FROM task_table GROUP BY state")
    List<Map<String, Object>> getTaskCompletionCount();

    /**
     * 根据医生id获取该医生的任务
     * @param doctorId
     * @return
     */
    @Select("SELECT tt.* from task_table tt left join sys_user_task sut on sut.tid = tt.id where sut.uid = #{doctorId}")
    List<TaskTable> getTaskTableByDoctorId(@Param("doctorId") Long doctorId);
}
